// 配置路由
import VueRouter from "vue-router";
import Vue from "vue";

// 注册组件
Vue.use(VueRouter);

// 定义路由规则
const routes = [
    {
        path: "/",
        redirect: "/login"
    },
    {
        path: "/login",
        component: ()=>import("@/views/login.vue")
    },
    {
        path: "/layout",
        component: ()=>import("@/views/layout.vue"),
        redirect: "/layout/index", // 重定向，自动访问首页
        children: [ // 二级路由
            { // 首页
                path: "index",
                component: ()=>import("@/views/index.vue")
            },
            {
                path: "articleList",
                component: ()=>import("@/views/articleList.vue")
            },
            {
                path: "articleAdd",
                component: ()=>import("@/views/articleAdd.vue")
            }
        ]
    }
]

// 根据路由规则生成路由对象
const router = new VueRouter({
    routes
})

// 路由权限，通过添加导航守卫实现路由权限
// 除了登录页面，其他页面都必须登录后才能访问，
// 登录后，当用户访问登录页面的时候，自动跳转到首页。
router.beforeEach((to,from,next)=>{
    let token = localStorage.getItem("token-backend-70");
    if(to.path != "/login"&&!token){
        next("/login")
    }else{
        // 登录后，不让用户访问登录页面，直接跳转到首页即可
        if(token&&to.path=="/login"){
            next("/layout")
        }else{
            next()
        }
    }
})

// 导出路由对象
export default router